package com.chocomania;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.dao.ChocomaniaSqlLiteHelper;

public class DetalleDeReceta extends Activity{
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
    
    	super.onCreate(savedInstanceState);
        setContentView(R.layout.detalledereceta);
        
        //TOMO EL ID DE LA RECETA A MOSTRAR
        String idReceta = getIntent().getExtras().getString("idReceta");
        
        //BUSCO LA RECETA EN LA BASE DE DATOS
        ChocomaniaSqlLiteHelper chocoDb = new ChocomaniaSqlLiteHelper(this);
		SQLiteDatabase db = chocoDb.getWritableDatabase();
		
        String[] columns = {"_id","nombre","tiempo_preparacion","tiempo_coccion","es_favorita"};
        String whereClause = "_id="+idReceta;
        Cursor c = db.query("receta", columns, 
        		whereClause, null, null, null, null, null);
        startManagingCursor(c);
                
        //SETEO EN LA VISTA LOS VALORES DE LA RECETA
        TextView nombreReceta = (TextView)findViewById(R.id.textNombreReceta);
        TextView prepTime = (TextView)findViewById(R.id.textPrepTime);
        TextView cookTime = (TextView)findViewById(R.id.textCookTime);
        TextView ingredientes = (TextView)findViewById(R.id.TextIngredientes);
        TextView instruccciones = (TextView)findViewById(R.id.textInstruccciones);
        Button estrella = (Button) findViewById(R.id.btnSetFavorita);
        
        if (c != null) {
	        while (c.moveToNext()){            
	        	
	        	nombreReceta.setText(c.getString(1));
	            prepTime.setText(prepTime.getText()+" "+c.getString(2)+" min.");
	            cookTime.setText(cookTime.getText()+" "+c.getString(3)+" min.");
	            
	            
	            /*OBTENGO LOS GRUPOS DE INGREDIENTES DE LA RECETA*/
	            String[] columnsGruposIngredientes = {"_id","descripcion"};
	            String whereClauseGruposIngredientes = "_id_receta="+idReceta;
	            Cursor cGruposIngredientes = db.query("grupo_ingredientes", columnsGruposIngredientes, whereClauseGruposIngredientes, null, null, null, null, null);
	            startManagingCursor(cGruposIngredientes);
	            
	            String ingredientesDeLaReceta="";
	            while (cGruposIngredientes.moveToNext()){
	            	
	            	ingredientesDeLaReceta += cGruposIngredientes.getString(1)+":\n";
	            	
	            	/*OBTENGO LOS INGREDIENTES DE LA RECETA*/
		            String[] columnsIngredientes = {"_id","descripcion","cantidad"};
		            String whereClauseIngredientes = "_id_grupo_ingrediente="+cGruposIngredientes.getString(0);
		            Cursor cIngredientes = db.query("ingrediente", columnsIngredientes, whereClauseIngredientes, null, null, null, null, null);
		            startManagingCursor(cIngredientes);
		            
		            while (cIngredientes.moveToNext()){
		            	ingredientesDeLaReceta += cIngredientes.getString(1)+" "+cIngredientes.getString(2)+"\n";
		            }
	            }
	            ingredientes.setText(ingredientesDeLaReceta);
	            
	            /*OBTENGO LOS PASOS DE LA RECETA*/
	            String[] columnsPasos = {"_id","numero","descripcion"};
	            String whereClausePasos = "_id_receta="+idReceta;
	            Cursor cPasos = db.query("pasos", columnsPasos, whereClausePasos, null, null, null, null, null);
	            startManagingCursor(cPasos);
	            
	            String descripcionPasos="";
	            while (cPasos.moveToNext()){
	            	descripcionPasos += cPasos.getString(1)+": "+cPasos.getString(2)+"\n";
	            }
	            instruccciones.setText(descripcionPasos);
	            
	            if(c.getString(4).equalsIgnoreCase("1")){
	            	estrella.setBackgroundResource(R.drawable.star_full);
            	}else{
            		estrella.setBackgroundResource(R.drawable.star_empty);
            	}	
	            
	            ChocomaniaApp appState = ((ChocomaniaApp)getApplicationContext());
            	appState.setIdReceta(c.getString(0));
            	appState.setEsFavorita(c.getString(4));
	         }
		}
        
        //BOTON VOLVER A LA PANTALLA ANTERIOR
        //SI LLEGO DE RANDOM VA AL HOME
        String random = "false";
        try{
        	random = getIntent().getExtras().getString("random");
        }catch(Exception e){}
        
        if(random.equalsIgnoreCase("false")){
        	Button botonVolver = (Button) findViewById(R.id.buttonVolverDeReceta);
            botonVolver.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                	finish();
                }
            });
        }else{
        	Button botonVolver = (Button) findViewById(R.id.buttonVolverDeReceta);
            botonVolver.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                	Intent i = new Intent(DetalleDeReceta.this,Inicio.class);
                	startActivity(i);
                }
            });
        }
        
        //BOTON VOLVER AL HOME DE LA APLICACION
        Button botonVolverHome = (Button) findViewById(R.id.buttonVolverAHome);
        botonVolverHome.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
            	Intent i = new Intent(DetalleDeReceta.this,Inicio.class);
            	startActivity(i);
            }
        });
        
        //BOTON SETEAR COMO FAVORITA
        Button botonFav = (Button) findViewById(R.id.btnSetFavorita);
        botonFav.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
            	
            	Button botonFav = (Button) findViewById(R.id.btnSetFavorita);
            	
            	ChocomaniaApp appState = ((ChocomaniaApp)getApplicationContext());
            	String id = appState.getIdReceta();
            	String esFavorita = appState.getEsFavorita();
            	
            	ChocomaniaSqlLiteHelper chocoDb = new ChocomaniaSqlLiteHelper(DetalleDeReceta.this);
        		SQLiteDatabase db = chocoDb.getWritableDatabase();
        		
        		if(esFavorita.equalsIgnoreCase("1")){
            		botonFav.setBackgroundResource(R.drawable.star_empty);
            	    final String UPDATE = "UPDATE receta set es_favorita=0 WHERE _id="+id; 
                    db.execSQL(UPDATE);
                    db.close();
                    appState.setEsFavorita("0");
                }else{
            		botonFav.setBackgroundResource(R.drawable.star_full);
            		final String UPDATE = "UPDATE receta set es_favorita=1 WHERE _id="+id; 
                    db.execSQL(UPDATE);
                    db.close();
                    appState.setEsFavorita("1");                    
            	}	
            }
        });
        
    } 
	
	@Override
	public boolean onKeyDown (int keyCode, KeyEvent event){
		if(keyCode == KeyEvent.KEYCODE_BACK){ 
			Intent i = new Intent(DetalleDeReceta.this,Inicio.class);
        	startActivity(i);
		} 
		return false;
	}
}